package de.tudarmstadt.gdi1.project.analyse.genetic;

import java.util.List;
import java.util.Random;

import de.tudarmstadt.gdi1.project.alphabet.Alphabet;
import de.tudarmstadt.gdi1.project.alphabet.Dictionary;
import de.tudarmstadt.gdi1.project.alphabet.Distribution;
import de.tudarmstadt.gdi1.project.analysis.ValidateDecryptionOracle;
import de.tudarmstadt.gdi1.project.analysis.monoalphabetic.GeneticAnalysis;
import de.tudarmstadt.gdi1.project.analysis.monoalphabetic.Individual;
import de.tudarmstadt.gdi1.project.analysis.monoalphabetic.MonoalphabeticKnownCiphertextCryptanalysis;

public class Genetic implements MonoalphabeticKnownCiphertextCryptanalysis, GeneticAnalysis{

	@Override
	public List<Individual> prepareInitialGeneration(String ciphertext,
			Alphabet alphabet, Distribution distribution, int populationSize) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Individual> generateNextGeneration(List<Individual> survivors,
			int populationSize, Random random, Alphabet alphabet,
			Distribution distribution, Dictionary dictionary) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public List<Individual> computeSurvivors(String ciphertext,
			Alphabet alphabet, List<Individual> generation,
			Distribution distribution, Dictionary dictionary, int nrOfSurvivors) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public double computeFitness(Individual individual, String ciphertext,
			Alphabet alphabet, Distribution distribution, Dictionary dictionary) {
		// TODO Auto-generated method stub
		return 0;
	}

	@Override
	public Object knownCiphertextAttack(String ciphertext,
			Distribution distribution) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public Object knownCiphertextAttack(String ciphertext, Dictionary dictionary) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public char[] knownCiphertextAttack(String ciphertext,
			Distribution distribution, Dictionary dictionary) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public char[] knownCiphertextAttack(String ciphertext,
			Distribution distribution, Dictionary dictionary,
			ValidateDecryptionOracle validateDecryptionOracle) {
		// TODO Auto-generated method stub
		return null;
	}

	@Override
	public String getState(Alphabet sourceAlphabet, Alphabet targetKey) {
		// TODO Auto-generated method stub
		return null;
	}

}
